home *** CD-ROM | disk | FTP | other *** search
- /*
- * DropController.m
- *
- * Wilfredo Sanchez | wsanchez@apple.com
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License"). You may not use this file except in compliance with the
- * License. Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
- *
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
- * License for the specific language governing rights and limitations
- * under the License.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
-
- #import <Foundation/Foundation.h>
- #import <AppKit/AppKit.h>
- #import "DropController.h"
-
- @implementation DropController
-
- /* Init */
-
- - (id) init
- {
- if ((self = [super init]))
- {
- /* Set up... */
- myAppIsLaunching = YES;
- myAppWasLaunchedWithDocument = NO;
- myScriptFileName = [[[NSBundle mainBundle] pathForResource:@"script" ofType:nil] retain];
-
- #if 0
- [[NSNotificationCenter defaultCenter] addObserver:self
- selector:@selector(checkATaskStatus:)
- name:NSTaskDidTerminateNotification
- object:nil];
- #endif
- }
- return self;
- }
-
- - (void) dealloc
- {
- [myScriptFileName release];
-
- [super dealloc];
- }
-
- /* Notification handlers */
-
- #if 0
- - (void) checkATaskStatus: (NSNotification*) aNotification
- {
- NSTask* aTask = [aNotification object];
- int aStatus = [aTask terminationStatus];
-
- if (aStatus)
- NSLog(@"Task %@ exited with non-zero exit status (%n).", [aTask arguments], aStatus);
- else
- NSLog(@"Task %@ suceeded.", [aTask arguments]);
- }
- #endif
-
- /* Actions */
-
- - (void) runScriptWithFiles: (NSArray* ) aFileList
- {
- [NSTask launchedTaskWithLaunchPath: myScriptFileName
- arguments: aFileList];
- }
-
- /* Application Deletate */
-
- - (BOOL) application: (NSApplication*) anApplication
- openFile: (NSString* ) aFileName
- {
- if (myAppIsLaunching) myAppWasLaunchedWithDocument = YES;
-
- [self runScriptWithFiles: [NSArray arrayWithObject: aFileName]];
-
- return YES;
- }
-
- - (void) applicationWillFinishLaunching: (NSNotification*) aNotification
- {
- myAppIsLaunching = YES;
- }
-
- - (void) applicationDidFinishLaunching: (NSNotification*) aNotification
- {
- myAppIsLaunching = NO;
-
- if (myAppWasLaunchedWithDocument)
- [(NSApplication*)[aNotification object] terminate: self];
- }
-
- /* IB Targets */
-
- - (IBAction) open: (id) aSender
- {
- NSOpenPanel* anOpenPanel = [NSOpenPanel openPanel];
-
- [anOpenPanel setCanChooseFiles : YES];
- [anOpenPanel setCanChooseDirectories : YES];
- [anOpenPanel setAllowsMultipleSelection : YES];
-
- if ([anOpenPanel runModalForTypes:nil] == NSOKButton)
- {
- [self runScriptWithFiles: [anOpenPanel filenames]];
- }
- }
-
- @end
-